使用达梦 8 数据库
⚠数据库选型建议
PIGX 官方目前主推 MySQL 8 和 达梦国产化数据库,建议优先在这两种数据库上跑通基础功能后,再探索使用其他类型的数据库。
由于底层采用了 MyBatis-Plus,已屏蔽大部分数据库间的差异。因此,只需通过工具将 MySQL 脚本转换为目标数据库的格式即可完成迁移,无需复杂的额外调整。
环境说明
| 依赖 | 版本 |
|---|
| 数据库 | dm8_single:dm8_20240715_rev232765_x86_rh6_64 |
| PIGX | 5.9 |
| 架构模式 | 单体 |
一、使用 SQLark 迁移 MySQL 脚本
达梦数据库提供了免费的数据迁移工具 SQLark,可以将 Oracle、MySQL 等数据库迁移到达梦。DTS 具有全图形化操作,简单直观,迁移速度快。通过
SQLark,将标准 MySQL 脚本转换为达梦数据库脚本。
二、单体架构模式
2.1 调整 common-sequence 依赖
为保证系统的兼容性和稳定性,还需对以下配置进行调整:
- 在
pigx-common-sequence/pom.xml 中保留或修改成 dm 驱动:
2.2 调整 pigx-boot/application-dev.yml 维护链接和配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://localhost:5236?schema=PIGXX_BOOT&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
username: SYSDBA
password: SYSDBA
# 使用达梦需要关闭自动创建表
flowable:
database-schema-update: none
三、【进阶】微服务架构模式
3.1、修改 Nacos 适配达梦数据源
在项目的 pom.xml 中添加以下依赖:
<!--达梦数据库插件:https://github.com/pig-mesh/nacos-datasource-plugin-dm8-->
<dependency>
<groupId>com.pig4cloud.plugin</groupId>
<artifactId>nacos-datasource-plugin-dm8</artifactId>
<version>${nacos对应版本的插件}</version>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
</dependency>
| Nacos 版本 | 插件版本 |
|---|
| 2.2.0 - 2.3.0 | 0.0.2 |
| 2.3.1 - 2.3.2 | 0.0.3 |
| 2.4.0 - 2.4.3 | 0.0.4 |
| 2.5.0 - | 0.0.5 |
| 3.0.0 - | 0.0.6 |
然后在 pigx-register/application.properties 中配置达梦数据库的相关参数:
spring.sql.init.platform=dameng
db.num=1
db.url.0=jdbc:dm://localhost:5236?schema=P2
db.user.0=SYSDBA
db.password.0=SYSDBA
db.pool.config.driverClassName=dm.jdbc.driver.DmDriver
3.2、修改微服务数据连接参数
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
</dependency>
- 将原有服务连接 MySQL 的参数修改为达梦数据库的链接参数:
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://localhost:5236?schema=XXX&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
username: 用户名
password: 密码
3.3、其他必要配置
为保证系统的兼容性和稳定性,还需对以下配置进行调整:
- 在
pigx-common-sequence/pom.xml 中保留或修改成 dm 驱动:
- 在
nacos/pigx-report-platform-dev.yml 中添加如下配置:
# 增加如下配置,关闭 JPA 自动建表
spring:
jpa:
hibernate:
ddl-auto: none
- 在
nacos/pigx-flow-engine-biz-dev.yml 中添加如下配置:
# 增加如下配置,关闭 Flowable 自动建表
flowable:
database-schema-update: none